| Автор перевода: Майкл "Antares" Клишин | Предыдущая | Следующая | Оглавление |
Flash Player 6. Необязательный параметр width поддерживается начиная с Flash Player 7.
my_fmt.getTextExtent(text:String, [width:Number]): Object
text Строка.
width Необязательное число, определяющее ширину, в пикселах, на которой должен происходить перенос текста.
Объект со свойствами width, height, ascent, descent, textFieldHeight, textFieldWidth.
Метод; возвращает информацию о размерах текстовой строки text при форматировании, определяемом my_fmt. Текстовая строка рассматривается как чистый текст, не HTML.
Метод возвращает объект с шестью свойствами: ascent, descent, width, height, textFieldHeight и textFieldWidth. Все величины в пикселах.
Если параметр width определен, значения рассчитываются с учетом переноса строк. Это позволяет вам определить высоту текстового поля, содержащего весь текст и имеющего определенную ширину.
Величины ascent и descent отражают, соответственно, расстояние над и под базовой линией текста. Базовая линия в первой строке текста расположена выше оригинальной базовой линии шрифта плюс величина ascent.
Величины width и height отражают ширину и высоту строки текста. Величины textFieldHeight и textFieldWidth содержат информацию о свойствах height и width, необходимых текстовому полю, чтобы полностью отобразить данную строку. Текстовые поля имеют 2х-пиксельный “зазор” вокруг, поэтому значение textFieldHeight фактически равно height + 4; подобным образом, значение textFieldWidth всегда равно width + 4.
Если вы создаете текстовое поле в соответствии с данными метриками, используйте textFieldHeight, а не height, и textFieldWidth вместо width.
Следующий рисунок наглядно показывает смысл этих величин.

При определении свойств объекта TextFormat задавайте все аттрибуты такими, какими они будут при создании текстового поля, включая имя имя шрифта, размер и межстрочный интервал (интерлиньяж). Интерлиньяж по умолчанию имеет значение 2.
Код в данном примере создает однострочное текстовое поле, достаточно большое, для того, чтобы отобразить полностью текст с указанным форматированием.
var my_str:String = "Короткая строка";
// Создаем объект TextFormat,
// затем устанавливаем его свойства.
var my_fmt:TextFormat = new TextFormat();
with (my_fmt) {
font = "Arial";
bold = true;
}
// Получаем метрические данные о тексте
// с указанным форматированием.
var metrics:Object = my_fmt.getTextExtent(my_str);
// Создаем текстовое поле, достаточно большое, чтобы отобразить текст с указанным форматированием.
this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, metrics.textFieldWidth, metrics.textFieldHeight);
my_txt.border = true;
my_txt.wordWrap = true;
// Assign the same text string and TextFormat object to the my_txt object.
my_txt.text = my_str;
my_txt.setTextFormat(my_fmt);
Код в нижеследующем примере создает многострочное, с шириной в 100 пикселов, текстовое поле, достаточно высокое, чтобы отобразить строку с определенным форматированием.
// Создает объект TextFormat.
var my_fmt:TextFormat = new TextFormat();
// Определяем форматирование:
my_fmt.font = "Arial";
my_fmt.bold = true;
my_fmt.leading = 4;
// Строка текста, которую будет отображать
var textToDisplay:String = "Macromedia Flash Player 7 теперь умеет получать метрические данные о тексте.";
// Получаем метрические данные о тексте,
// переносимом на ширине 100 пикселов.
var metrics:Object = my_fmt.getTextExtent(textToDisplay, 100);
// Создаем текстовое поле, используя полученные метрики
this.createTextField("my_txt", this.getNextHighestDepth(), 50, 50-metrics.ascent, 100, metrics.textFieldHeight);
my_txt.wordWrap = true;
my_txt.border = true;
// Присваиваем форматирование тексту в текстовом поле:
my_txt.text = textToDisplay;
my_txt.setTextFormat(my_fmt);
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |